<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>application-specific recovery</title>
    <link rel="stylesheet" href="gettingStarted.css" type="text/css" />
    <meta name="generator" content="DocBook XSL Stylesheets V1.73.2" />
    <link rel="start" href="index.html" title="Berkeley DB Upgrade Guide" />
    <link rel="up" href="upgrade_4_0_toc.html" title="Chapter 10. Upgrading Berkeley DB 3.3 applications to Berkeley DB 4.0" />
    <link rel="prev" href="upgrade_4_0_cxx.html" title="C++ ostream objects" />
    <link rel="next" href="upgrade_4_0_disk.html" title="Upgrade Requirements" />
  </head>
  <body>
    <div xmlns="" class="navheader">
      <div class="libver">
        <p>Library Version 12.1.6.2</p>
      </div>
      <table width="100%" summary="Navigation header">
        <tr>
          <th colspan="3" align="center">application-specific recovery</th>
        </tr>
        <tr>
          <td width="20%" align="left"><a accesskey="p" href="upgrade_4_0_cxx.html">Prev</a> </td>
          <th width="60%" align="center">Chapter 10. Upgrading Berkeley DB 3.3 applications to Berkeley DB 4.0</th>
          <td width="20%" align="right"> <a accesskey="n" href="upgrade_4_0_disk.html">Next</a></td>
        </tr>
      </table>
      <hr />
    </div>
    <div class="sect1" lang="en" xml:lang="en">
      <div class="titlepage">
        <div>
          <div>
            <h2 class="title" style="clear: both"><a id="upgrade_4_0_asr"></a>application-specific recovery</h2>
          </div>
        </div>
      </div>
      <p>If you have created your own logging and recovery routines, you may need
to upgrade them to the Berkeley DB 4.0 release.</p>
      <p>First, you should regenerate your logging, print, read and the other
automatically generated routines, using the dist/gen_rec.awk tool
included in the Berkeley DB distribution.</p>
      <p>Next, compare the template file code generated by the gen_rec.awk tool
against the code generated by the last release in which you built a
template file.  Any changes in the templates should be incorporated into
the recovery routines you have written.</p>
      <p>Third, if your recovery functions refer to <a href="../api_reference/C/envset_app_dispatch.html#set_app_dispatch_DB_TXN_FORWARD_ROLL" class="olink">DB_TXN_FORWARD_ROLL</a>
(that is, your code checks for that particular operation code), you
should replace it with DB_REDO(op) which compares the operation code to
both <a href="../api_reference/C/envset_app_dispatch.html#set_app_dispatch_DB_TXN_FORWARD_ROLL" class="olink">DB_TXN_FORWARD_ROLL</a> and <a href="../api_reference/C/envset_app_dispatch.html#set_app_dispatch_DB_TXN_APPLY" class="olink">DB_TXN_APPLY</a>.
(<a href="../api_reference/C/envset_app_dispatch.html#set_app_dispatch_DB_TXN_APPLY" class="olink">DB_TXN_APPLY</a> is a potential value for the operation code as of
the 4.0 release.)</p>
      <p>Finally, if you have created your own logging and recovery routines, we
recommend you contact us and ask us to review those routines for you.</p>
    </div>
    <div class="navfooter">
      <hr />
      <table width="100%" summary="Navigation footer">
        <tr>
          <td width="40%" align="left"><a accesskey="p" href="upgrade_4_0_cxx.html">Prev</a> </td>
          <td width="20%" align="center">
            <a accesskey="u" href="upgrade_4_0_toc.html">Up</a>
          </td>
          <td width="40%" align="right"> <a accesskey="n" href="upgrade_4_0_disk.html">Next</a></td>
        </tr>
        <tr>
          <td width="40%" align="left" valign="top">C++ ostream objects </td>
          <td width="20%" align="center">
            <a accesskey="h" href="index.html">Home</a>
          </td>
          <td width="40%" align="right" valign="top"> Upgrade Requirements</td>
        </tr>
      </table>
    </div>
  </body>
</html>
